<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Validator;

class ValidationServiceProvider extends ServiceProvider
{
    /**
     * 启动服务
     *
     * @return void
     */
    public function boot()
    {

        // 注册mb_min验证器
        Validator::extend('mb_min', function ($attribute, $value, $parameters) {
            return mb_length($value) >= $parameters[0];
        });

        // 注册mb_max验证器
        Validator::extend('mb_max', function ($attribute, $value, $parameters) {
            return mb_length($value) <= $parameters[0];
        });

        // 注册username验证器
        Validator::extend('username', function ($attribute, $value, $parameters) {
            return is_username($value);
        });

        // 注册mobile验证器
        Validator::extend('mobile', function ($attribute, $value, $parameters) {
            return is_mobile($value);
        });

        // 注册login验证器
        Validator::extend('login', function ($attribute, $value, $parameters) {
            return mb_length($value) >= 4 && (is_username($value) || is_email($value) || is_mobile($value));
        });

        // 注册密码验证器
        Validator::extend('password', function ($attribute, $value, $parameters) {

            $len = strlen($value);
            return $len >= 6 && $len <= 100;
        });
    }
}
